//go:build go1.13

package errors

// 兼容 go1.13 版本后的错误处理。

import (
	stderrors "errors"
)

// Is 解包传入的错误构建错误树，在树中查找是否存在与目标类型匹配的错误，如果有则
// 返回 true 。
func Is(err, target error) bool { return stderrors.Is(err, target) }

// As 解包传入的错误构建错误树，在树中查找是否存在与目标类型匹配的错误，将找到的
// 第一个匹配项赋值给 target 并返回 true 。
//
// 如果 target 不是指向实现 error 接口或 any 类型的非零指针，则发生 panic 。
func As(err error, target any) bool { return stderrors.As(err, target) }

// Unwrap 如果错误实现了 Unwrap 方法，则调用它返回包装前的错误，否则返回 nil 。
func Unwrap(err error) error {
	return stderrors.Unwrap(err)
}
